package com.zyg.cod.util;

import java.text.DateFormat;
import java.text.NumberFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * @Dsc: 系统所需日期时间处理工具类
 * @Author: zyg
 * @Date: 2021/2/4
 */
public class DateUtil {

	/**
	 * 获取当前日期的前一天的日期 : "yyyy-MM-dd"
	 * @return
	 */
	public static Date getYesterdayDate() {
		try {
			DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
			Calendar calendar = Calendar.getInstance();
			calendar.set(Calendar.HOUR_OF_DAY, -24);
			String yesterdayDate = dateFormat.format(calendar.getTime());
			return dateFormat.parse(yesterdayDate);
		} catch (ParseException e) {
			e.getMessage();
		}
		return new Date();
	}


	/**
	 * 获取当前日期的日期 : "yyyy-MM-dd"
	 * @return
	 */
	public static Date getTodayDate() {
		try {
			DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
			Calendar calendar = Calendar.getInstance();
			String yesterdayDate = dateFormat.format(calendar.getTime());
			return dateFormat.parse(yesterdayDate);
		} catch (ParseException e) {
			e.getMessage();
		}
		return new Date();
	}
	/**
	 * 获取当天时间戳："yyyyMMdd"
	 */
	public static String getDateStr(){
		DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
		return dateFormat.format(new Date()).replace("-",""); //yyyyMMdd
	}
	/**
	 * 获取当天指定格式的时间戳
	 */
	public static String getDateStr(String  pattern){
		DateFormat dateFormat = new SimpleDateFormat(pattern);
		return dateFormat.format(new Date()).replace("-","").replace(" ","")
				.replace(":",""); //yyyyMMdd
	}


	/**
	 * 获取当前时间 yyyy-MM-dd 字符串
	 */
	public static String getCurrentDateStr(){
		DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
		return dateFormat.format(new Date()); //yyyyMMdd
	}

	/**
	 * 获取指定日期 yyyy-MM-dd 字符串
	 *
	 */
	public static String getDateStr(Date date){
		DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
		return dateFormat.format(date); //yyyy-MM-dd
	}
	/**
	 * 获取指定日期 yyyy-MM-dd 字符串
	 *
	 */
	public static String getDateString(Date date){
		DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
		String format = dateFormat.format(date);//yyyyMMdd
		return format.replace("-","").replace(" ","");
	}

	/**
	 * 比较两个时间是否是同一个日期
	 *
	 */
	public static boolean equseDate(Date date,Date date2){
		DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
		String d1 = format.format(date);
		String d2 = format.format(date2);
		return d1.equals(d2);
	}


	/**
	 *所含信息记录数的十进制数字串。不足 7 位的，左侧用“0”补齐。
	 * @param num 数值
	 * @param min 最小位数
	 * @param max 最大位
	 * @return String
	 */
	public static String fill(int num , int min , int max) {
		NumberFormat numberFormat = NumberFormat.getInstance();
		// 禁用数字格式化分组。 如：  000,001
		numberFormat.setGroupingUsed(false);
		// 保留最小位数
		numberFormat.setMinimumIntegerDigits(min);
		// 保留最大位数
		numberFormat.setMaximumIntegerDigits(max);
		return numberFormat.format(num);
	}


	public static void main(String[] args) {
		String fill = fill(12, 7, 7);
		System.out.println(fill);
	}

}
